package br.com.dbii;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table
public class ClassificacaoGeral implements Serializable {
    private static final long serialVersionUID = 1L;
    
    @Embeddable
    private class ClassificacaoGeralPK implements Serializable{
		private static final long serialVersionUID = 1L;

		@ManyToOne
    	@JoinColumn(name="idCampeonato",referencedColumnName="idCampeonato")
    	private Campeonato campeonato;
    	
    	@Column(name="Posicao")
    	private Integer posicao;
    	
    	protected ClassificacaoGeralPK(Campeonato campeonato, Integer posicao) {
    		this.campeonato = campeonato;
    		this.posicao = posicao;
    	}
    	
    	public Campeonato getCampeonato() {
    		return campeonato;
    	}

    	public void setCampeonato(Campeonato campeonato) {
    		this.campeonato = campeonato;
    	}

    	public Integer getPosicao() {
    		return posicao;
    	}

    	public void setPosicao(Integer posicao) {
    		this.posicao = posicao;
    	}
    }
    
    @EmbeddedId
    private ClassificacaoGeralPK classificacaoGeralPK;
    
    @ManyToOne
    @JoinColumn(name="idClube",referencedColumnName="idClube")
    private Clube clube;

    public ClassificacaoGeral(Campeonato campeonato, Integer posicao, Clube clube) {
    	this.classificacaoGeralPK = new ClassificacaoGeralPK(campeonato, posicao);
    	this.clube = clube;
    }
    
	public Clube getClube() {
		return clube;
	}

	public void setClube(Clube clube) {
		this.clube = clube;
	}
}
